package com.doraemon.service;

import com.doraemon.dto.CategoryDTO;
import com.doraemon.dto.CategoryPageQueryDTO;
import com.doraemon.entity.Category;
import com.doraemon.result.PageResult;

import java.util.List;

/**
 * 分类管理Service
 **/
public interface CategoryService {

    /***
     * 新增分类
     * ---
     * @param categoryDTO 分类DTO类（前端参数）
     * @return: void
     */
    void save(CategoryDTO categoryDTO);

    /***
     * 分页查询分类
     * ---
     * @param categoryPageQueryDTO 分类分页DTO类
     * @return: com.doraemon.result.PageResult 分页结果集对象
     */
    PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO);

    /***
     * 根据id删除分类
     * ---
     * @param id 分类id
     * @return: void
     */
    void deleteById(Long id);

    /***
     * 修改分类
     * ---
     * @param categoryDTO 分类DTO类
     * @return: void
     */
    void updateCategory(CategoryDTO categoryDTO);

    /***
     * 修改分类状态
     * ---
     * @param status 分类状态 0 禁用 1 启用
     * @param id 分类id
     * @return: void
     */
    void updateStatus(Integer status, Long id);

    /***
     * 根据类型查询分类
     * ---
     * @param type 分类类型 1为菜品分类，2为套餐分类
     * @return: com.doraemon.result.Result<java.util.List < com.doraemon.entity.Category>>
     */
    List<Category> getListByType(Integer type);
}
